

<tr>
	<th>详细地址</th>
	<td>
		<input class="form-control" type="text" name="address" id="address" value="" placeholder="请输入新房详细地址"><br/>
		<input type="button" value="查询" id="search" />
		<input class="form-control" type="hidden" name="lng" id="lng" value="" placeholder="经度">
		<input class="form-control" type="hidden" name="lat" id="lat" value="" placeholder="纬度">
	</td>
</tr>

<tr>
	<th>选择地址</th>
	<td>
		<div id="container" style="height:400px"></div>
	</td>
</tr>

<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=8516ff3432822a37abf53574f73e52b2"></script>
<script type="text/javascript">


    //创建地图
    var map = new AMap.Map('container',{
        resizeEnable: true,
        zoom:13,
    });

    //创建地图标注点
    var marker = new AMap.Marker({
        map: map
    });

    AMap.service('AMap.Geocoder',function(){
        //回调函数
        //实例化Geocoder
        geocoder = new AMap.Geocoder({
            city: "徐州"//城市，默认：“全国”
        });
    });



    //点击地图获取经纬度
    map.on('click', function(e) {
        //逆地理编码
        var lnglatXY=[e.lnglat.getLng(), e.lnglat.getLat()];//地图上所标点的坐标
        getAddressInfo(lnglatXY);   //根据经纬度获取地址
    });

    //根据经纬度获取地址
    function getAddressInfo(lnglatXY){
        geocoder.getAddress(lnglatXY, function(status, result) {
            if (status === 'complete' && result.info === 'OK') {
                //获得了有效的地址信息:
                //即，result.regeocode.formattedAddress
                //console.log(result);
                $("#address").val(result.regeocode.formattedAddress);
                $("#lng").val(lnglatXY[0]);
                $("#lat").val(lnglatXY[1]);
                //修改地图标注点
                marker.setPosition(lnglatXY);
                map.panTo(lnglatXY);
            }else{
                //获取经纬度失败
                $("#address").val('');
                $("#lng").val('');
                $("#lat").val('');
            }
        });
    }


    //输入地址事件,根据地址查询经纬度
    $("#search").click(function(){
        var address = $("#address").val();
        //地理编码
        getlnglat(address);     //根据地址获取经纬度
    });

    //根据地址获取经纬度
    function getlnglat(address){
        geocoder.getLocation(address, function(status, result) {
            if (status === 'complete' && result.info === 'OK') {
                //TODO:获得了有效经纬度，可以做一些展示工作
                //比如在获得的经纬度上打上一个Marker
                //console.log(result);

                var lnglatXY=[result['geocodes'][0]['location']['lng'], result['geocodes'][0]['location']['lat']];//地图上所标点的坐标
                $("#address").val(result['geocodes'][0]['formattedAddress']);
                $("#lng").val(lnglatXY[0]);
                $("#lat").val(lnglatXY[1]);
                //修改地图标注点
                marker.setPosition(lnglatXY);
                map.panTo(lnglatXY);
            }else{
                //获取地址失败
                alert('查询失败');
            }
        });
    }


</script>